SlideShare a Scribd company logo
Titanium Desktop
writing native desktop apps with HTML, CSS, Javascript, and friends.
About Me

             Marshall Culpepper
Titanium Project Lead / Hacker Extraordinaire
                @marshall_law
           http://www.arcaner.com
       mculpepper@appcelerator.com
          http://github.com/marshall
Agenda

• What is Titanium?
• High Level Architecture, Runtime
• API Overview
• Guided Lab: Screengrabber
What is Titanium?

• An open source framework for building native apps
  using web technologies
• Titanium Desktop: Windows, OSX, Linux
• Titanium Mobile: iPhone, Android
                http://appcelerator.com
            http://github.com/appcelerator
                     @appcelerator
          #titanium_app on irc.freenode.net
Motivation
• Single Site Browsers (Fluid, Prizm)
• Adobe AIR
• Cross platform GUI toolkits (Qt, wxWidgets, XUL,
  GTK)
• Dynamic Languages (Ruby, Python, Javascript)
• Binding layers (Jython, Rhino, JavaScriptCore)
• Next gen web tech: HTML5, Gears, CSS3
• ... And lots of caffeine!
Titanium Desktop


•   UI with HTML5, CSS, Canvas. The best of the open web.

•   Support for Javascript, Ruby, Python (PHP coming soon)

•   Languages can be intermixed automatically.

•   Native desktop functionality at your fingertips.

•   Titanium.* APIs are available in all languages

•   Windows (XP/SP2 -> 7), OSX (10.5->10.6, Universal), Linux
    (Debian based distros, Fedora, SuSE)
Desktop Architecture
The Desktop Runtime

•   Fully configurable distribution options:

    •   “Bundled” : Runtime is packaged with your app, no seperate
        installer

    •   “Network Install”: A native installer downloads dependencies
        on demand

•   Remove modules you don’t need to cut down on binary size

•   Reuse the runtime already on the user’s machine

•   Runtime size: OSX: ~17MB, Win32: ~15MB
UI and Notification APIs
Filesystem API
Network API
Database API
Synchronous and Asynchronous (HTML5) APIs
Process API
Launch processes, read/write from pipes
And much more..
•   Web Workers: Multi-threading for Javascript

•   Desktop: Take screenshots, open URLs, applications

•   Comprehensive language support:

    •   Javascript (WebKit / close to trunk -- blazing fast)

    •   Ruby 1.8.6 (1.9 with GVL coming soon)

    •   Python 2.5.4 (2.6 coming soon)

    •   PHP 5.3 (in development)

    •   Lua (in development)

    •   C/C++ Native bindings

    •   Java / C# planned post-1.0
Useful Resources

•   Check out some of my demo apps:

    •   http://github.com/marshall/screengrabber

    •   http://github.com/marshall/quicksnap (Uses Ruby)

•   Desktop testsuite (Drillbit)

•   Full API doc: http://codestrong.com

•   Support forums: http://support.appcelerator.net
Titanium Developer
• Used for creating, managing, packaging and testing
  your native apps.

• Requires sign-up for Appcelerator Network (forum
  support, e-mail list, other services)

• Is actually a Titanium app!
Obligatory “Hello World”
Using the sandbox to quickly test and run code
Screengrabber: Our first app


•   An app that takes a screenshot, and shows it to the user

•   App walkthrough:

    •   Create the project in Developer

    •   Overview of config files, manifest, app layout

    •   Quickly roundtrip prototype, show off debugging, etc
Step 1: Configuration
•   $ROOT/tiapp.xml

•   Configure Windows, and their properties
Step 2: HTML, CSS, JS
•   clean out $ROOT/index.html

•   make a JS script, a CSS stylesheet
Step 3: Write the JS
•   APIs we need from Titanium:

    •   Titanium.Desktop.takeScreenshot(“path/to/file”)

    •   Titanium.Filesystem.getFile() / getDesktopDirectory()
Step 4: App!
Packaging


•   Once your app is written, you can use our cloud services to
    package and distribute your app.

    •   Automatically packages with the config you specify, for
        the platforms you want to support

    •   Built-in analytics to track who’s using your app,
        downloads, etc
Wrapping it up
•   Current release: 0.6

•   0.7 scheduled for end of Sept., 1.0 GA soon after

•   Come visit IRC for help, or to chat us up

    •   #titanium_app on irc.freenode.net

•   Extra credit: using Python, Ruby during the hack session

•   And now, Lunch!

More Related Content

What's hot

Dev/Stage/Prod Parity with Vagrant
Dev/Stage/Prod Parity with VagrantDev/Stage/Prod Parity with Vagrant
Dev/Stage/Prod Parity with Vagrant
Mike Bybee
 
Infrastructure as Data with Ansible
Infrastructure as Data with AnsibleInfrastructure as Data with Ansible
Infrastructure as Data with Ansible
Carlo Bonamico
 
Visnetwork package in R
Visnetwork package in R Visnetwork package in R
Visnetwork package in R
Dr. Volkan OBAN
 
Guideline paper@rpi full_stack_python_arch
Guideline paper@rpi full_stack_python_archGuideline paper@rpi full_stack_python_arch
Guideline paper@rpi full_stack_python_arch
Anthony Le Goff
 
High Productivity Web Development Workflow
High Productivity Web Development WorkflowHigh Productivity Web Development Workflow
High Productivity Web Development Workflow
Vũ Nguyễn
 
Why and what is go
Why and what is goWhy and what is go
Why and what is go
Mayflower GmbH
 
New trends of web technology on mobile: HTML5, PhoneGap & NaCl - Barcamp Saig...
New trends of web technology on mobile: HTML5, PhoneGap & NaCl - Barcamp Saig...New trends of web technology on mobile: HTML5, PhoneGap & NaCl - Barcamp Saig...
New trends of web technology on mobile: HTML5, PhoneGap & NaCl - Barcamp Saig...Vũ Nguyễn
 
WebRTC - Brings Real-Time to the Web
WebRTC - Brings Real-Time to the WebWebRTC - Brings Real-Time to the Web
WebRTC - Brings Real-Time to the Web
Vũ Nguyễn
 
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...
Pantheon
 
Serverless Preview Environments @ Boston DevOps
Serverless Preview Environments @ Boston DevOpsServerless Preview Environments @ Boston DevOps
Serverless Preview Environments @ Boston DevOps
Joseph Lust
 
Jenkins 101: Continuos Integration with Jenkins
Jenkins 101: Continuos Integration with JenkinsJenkins 101: Continuos Integration with Jenkins
Jenkins 101: Continuos Integration with Jenkins
All Things Open
 
QCon SP - ShortTalk - Virtualização e Provisionamento de Ambientes com Vagr...
QCon SP - ShortTalk - Virtualização e Provisionamento de Ambientes com Vagr...QCon SP - ShortTalk - Virtualização e Provisionamento de Ambientes com Vagr...
QCon SP - ShortTalk - Virtualização e Provisionamento de Ambientes com Vagr...
Lucas Arruda
 
Jenkins to Gitlab - Intelligent Build-Pipelines
Jenkins to Gitlab - Intelligent Build-PipelinesJenkins to Gitlab - Intelligent Build-Pipelines
Jenkins to Gitlab - Intelligent Build-Pipelines
Christian Münch
 
WebRTC Browsers n Stacks Implementation differences
WebRTC Browsers n Stacks Implementation differencesWebRTC Browsers n Stacks Implementation differences
WebRTC Browsers n Stacks Implementation differences
Alexandre Gouaillard
 
React Native Masterclass
React Native MasterclassReact Native Masterclass
React Native Masterclass
Ahmad Arif Faizin
 
C#: Past, Present and Future
C#: Past, Present and FutureC#: Past, Present and Future
C#: Past, Present and Future
Rodolfo Finochietti
 
.NET Core Blimey! Windows Platform User Group, Manchester
.NET Core Blimey! Windows Platform User Group, Manchester.NET Core Blimey! Windows Platform User Group, Manchester
.NET Core Blimey! Windows Platform User Group, Manchester
citizenmatt
 
Cross-platform Desktop application with AngularJS and build with Node-webkit
Cross-platform Desktop application with AngularJS and build with Node-webkitCross-platform Desktop application with AngularJS and build with Node-webkit
Cross-platform Desktop application with AngularJS and build with Node-webkit
Wittawas Wisarnkanchana
 
Viktor Turskyi "Effective NodeJS Application Development"
Viktor Turskyi "Effective NodeJS Application Development"Viktor Turskyi "Effective NodeJS Application Development"
Viktor Turskyi "Effective NodeJS Application Development"
Fwdays
 
Gdg ionic 2
Gdg ionic 2Gdg ionic 2
Gdg ionic 2
Shang Yi Lim
 

What's hot (20)

Dev/Stage/Prod Parity with Vagrant
Dev/Stage/Prod Parity with VagrantDev/Stage/Prod Parity with Vagrant
Dev/Stage/Prod Parity with Vagrant
 
Infrastructure as Data with Ansible
Infrastructure as Data with AnsibleInfrastructure as Data with Ansible
Infrastructure as Data with Ansible
 
Visnetwork package in R
Visnetwork package in R Visnetwork package in R
Visnetwork package in R
 
Guideline paper@rpi full_stack_python_arch
Guideline paper@rpi full_stack_python_archGuideline paper@rpi full_stack_python_arch
Guideline paper@rpi full_stack_python_arch
 
High Productivity Web Development Workflow
High Productivity Web Development WorkflowHigh Productivity Web Development Workflow
High Productivity Web Development Workflow
 
Why and what is go
Why and what is goWhy and what is go
Why and what is go
 
New trends of web technology on mobile: HTML5, PhoneGap & NaCl - Barcamp Saig...
New trends of web technology on mobile: HTML5, PhoneGap & NaCl - Barcamp Saig...New trends of web technology on mobile: HTML5, PhoneGap & NaCl - Barcamp Saig...
New trends of web technology on mobile: HTML5, PhoneGap & NaCl - Barcamp Saig...
 
WebRTC - Brings Real-Time to the Web
WebRTC - Brings Real-Time to the WebWebRTC - Brings Real-Time to the Web
WebRTC - Brings Real-Time to the Web
 
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...
 
Serverless Preview Environments @ Boston DevOps
Serverless Preview Environments @ Boston DevOpsServerless Preview Environments @ Boston DevOps
Serverless Preview Environments @ Boston DevOps
 
Jenkins 101: Continuos Integration with Jenkins
Jenkins 101: Continuos Integration with JenkinsJenkins 101: Continuos Integration with Jenkins
Jenkins 101: Continuos Integration with Jenkins
 
QCon SP - ShortTalk - Virtualização e Provisionamento de Ambientes com Vagr...
QCon SP - ShortTalk - Virtualização e Provisionamento de Ambientes com Vagr...QCon SP - ShortTalk - Virtualização e Provisionamento de Ambientes com Vagr...
QCon SP - ShortTalk - Virtualização e Provisionamento de Ambientes com Vagr...
 
Jenkins to Gitlab - Intelligent Build-Pipelines
Jenkins to Gitlab - Intelligent Build-PipelinesJenkins to Gitlab - Intelligent Build-Pipelines
Jenkins to Gitlab - Intelligent Build-Pipelines
 
WebRTC Browsers n Stacks Implementation differences
WebRTC Browsers n Stacks Implementation differencesWebRTC Browsers n Stacks Implementation differences
WebRTC Browsers n Stacks Implementation differences
 
React Native Masterclass
React Native MasterclassReact Native Masterclass
React Native Masterclass
 
C#: Past, Present and Future
C#: Past, Present and FutureC#: Past, Present and Future
C#: Past, Present and Future
 
.NET Core Blimey! Windows Platform User Group, Manchester
.NET Core Blimey! Windows Platform User Group, Manchester.NET Core Blimey! Windows Platform User Group, Manchester
.NET Core Blimey! Windows Platform User Group, Manchester
 
Cross-platform Desktop application with AngularJS and build with Node-webkit
Cross-platform Desktop application with AngularJS and build with Node-webkitCross-platform Desktop application with AngularJS and build with Node-webkit
Cross-platform Desktop application with AngularJS and build with Node-webkit
 
Viktor Turskyi "Effective NodeJS Application Development"
Viktor Turskyi "Effective NodeJS Application Development"Viktor Turskyi "Effective NodeJS Application Development"
Viktor Turskyi "Effective NodeJS Application Development"
 
Gdg ionic 2
Gdg ionic 2Gdg ionic 2
Gdg ionic 2
 

Viewers also liked

Native apps in html5 with chrome packaged apps
Native apps in html5 with chrome packaged appsNative apps in html5 with chrome packaged apps
Native apps in html5 with chrome packaged appsTom Wilson
 
Clothes (Yibing)
Clothes (Yibing)Clothes (Yibing)
Clothes (Yibing)
Esther Rodriguez
 
Titanium SDK 2.0 Features update
Titanium SDK 2.0 Features updateTitanium SDK 2.0 Features update
Titanium SDK 2.0 Features updateHerxun Inc
 
Le Document Unique Aequalis Prévention
Le Document Unique Aequalis PréventionLe Document Unique Aequalis Prévention
Le Document Unique Aequalis Prévention
Nicolas PATRIS
 
Guia de actuacion moviles
Guia de actuacion movilesGuia de actuacion moviles
Guia de actuacion moviles
Departamento de Orientacion
 
contable
contablecontable
contable
guest95173b1b
 
Presupuesto de Ventas
Presupuesto de VentasPresupuesto de Ventas
Presupuesto de Ventas
jennifergvv
 
Presupuesto de ventas
Presupuesto de ventasPresupuesto de ventas
Presupuesto de ventas
genesis26s
 
Bao gia dang bai pr tren Vietnamnet moi nhat 2016
Bao gia dang bai pr tren Vietnamnet moi nhat 2016Bao gia dang bai pr tren Vietnamnet moi nhat 2016
Bao gia dang bai pr tren Vietnamnet moi nhat 2016
AsiaLink Media
 

Viewers also liked (11)

Native apps in html5 with chrome packaged apps
Native apps in html5 with chrome packaged appsNative apps in html5 with chrome packaged apps
Native apps in html5 with chrome packaged apps
 
CV
CVCV
CV
 
Clothes (Yibing)
Clothes (Yibing)Clothes (Yibing)
Clothes (Yibing)
 
Titanium SDK 2.0 Features update
Titanium SDK 2.0 Features updateTitanium SDK 2.0 Features update
Titanium SDK 2.0 Features update
 
ModDesignsCo.Plan
ModDesignsCo.PlanModDesignsCo.Plan
ModDesignsCo.Plan
 
Le Document Unique Aequalis Prévention
Le Document Unique Aequalis PréventionLe Document Unique Aequalis Prévention
Le Document Unique Aequalis Prévention
 
Guia de actuacion moviles
Guia de actuacion movilesGuia de actuacion moviles
Guia de actuacion moviles
 
contable
contablecontable
contable
 
Presupuesto de Ventas
Presupuesto de VentasPresupuesto de Ventas
Presupuesto de Ventas
 
Presupuesto de ventas
Presupuesto de ventasPresupuesto de ventas
Presupuesto de ventas
 
Bao gia dang bai pr tren Vietnamnet moi nhat 2016
Bao gia dang bai pr tren Vietnamnet moi nhat 2016Bao gia dang bai pr tren Vietnamnet moi nhat 2016
Bao gia dang bai pr tren Vietnamnet moi nhat 2016
 

Similar to Titanium Desktop Intro

Titanium Mobile Intro
Titanium Mobile IntroTitanium Mobile Intro
Titanium Mobile Intro
Marshall Culpepper
 
An Introduction To Android
An Introduction To AndroidAn Introduction To Android
An Introduction To Android
natdefreitas
 
Webdevcon Keynote hh-2012-09-18
Webdevcon Keynote hh-2012-09-18Webdevcon Keynote hh-2012-09-18
Webdevcon Keynote hh-2012-09-18Pierre Joye
 
Java script anywhere. What Nombas was doing pre-acquisition.
Java script anywhere. What Nombas was doing pre-acquisition.Java script anywhere. What Nombas was doing pre-acquisition.
Java script anywhere. What Nombas was doing pre-acquisition.
Brent Noorda
 
Cross-Platform Development
Cross-Platform DevelopmentCross-Platform Development
Cross-Platform Development
Syed Owais Ali Chishti
 
Castles in the Cloud: Developing with Google App Engine
Castles in the Cloud: Developing with Google App EngineCastles in the Cloud: Developing with Google App Engine
Castles in the Cloud: Developing with Google App Engine
catherinewall
 
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There TodayHTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There Todaydavyjones
 
NCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile AppsNCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile Apps
John M. Wargo
 
PhoneGap at Facebook Mobile Hack
PhoneGap at Facebook Mobile HackPhoneGap at Facebook Mobile Hack
PhoneGap at Facebook Mobile Hack
PhoneGap
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium IntroNicholas Jansma
 
Chrome Dev Summit Summary 2013 part 1 - what’s hot ?
Chrome Dev Summit Summary 2013 part 1 - what’s hot ?Chrome Dev Summit Summary 2013 part 1 - what’s hot ?
Chrome Dev Summit Summary 2013 part 1 - what’s hot ?
Sacha Leprêtre
 
Try! Swift Tokyo2017
Try! Swift Tokyo2017Try! Swift Tokyo2017
Try! Swift Tokyo2017
Amy Cheong
 
Living in a multiligual world: Internationalization for Web 2.0 Applications
Living in a multiligual world: Internationalization for Web 2.0 ApplicationsLiving in a multiligual world: Internationalization for Web 2.0 Applications
Living in a multiligual world: Internationalization for Web 2.0 Applications
Lars Trieloff
 
Web Technologies in Automotive & Robotics (BlinkOn 10)
Web Technologies in Automotive & Robotics (BlinkOn 10)Web Technologies in Automotive & Robotics (BlinkOn 10)
Web Technologies in Automotive & Robotics (BlinkOn 10)
Igalia
 
Device APIs at TakeOff Conference
Device APIs at TakeOff ConferenceDevice APIs at TakeOff Conference
Device APIs at TakeOff Conference
dianacheng
 
State ofappdevelopment
State ofappdevelopmentState ofappdevelopment
State ofappdevelopment
gillygize
 
Embarcadero's Connected Development
Embarcadero's Connected DevelopmentEmbarcadero's Connected Development
Embarcadero's Connected Development
Jim McKeeth
 
Apache cordova
Apache cordovaApache cordova
Apache cordova
Carlo Bernaschina
 
Angular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - LinagoraAngular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - Linagora
LINAGORA
 
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Ryan Cuprak
 

Similar to Titanium Desktop Intro (20)

Titanium Mobile Intro
Titanium Mobile IntroTitanium Mobile Intro
Titanium Mobile Intro
 
An Introduction To Android
An Introduction To AndroidAn Introduction To Android
An Introduction To Android
 
Webdevcon Keynote hh-2012-09-18
Webdevcon Keynote hh-2012-09-18Webdevcon Keynote hh-2012-09-18
Webdevcon Keynote hh-2012-09-18
 
Java script anywhere. What Nombas was doing pre-acquisition.
Java script anywhere. What Nombas was doing pre-acquisition.Java script anywhere. What Nombas was doing pre-acquisition.
Java script anywhere. What Nombas was doing pre-acquisition.
 
Cross-Platform Development
Cross-Platform DevelopmentCross-Platform Development
Cross-Platform Development
 
Castles in the Cloud: Developing with Google App Engine
Castles in the Cloud: Developing with Google App EngineCastles in the Cloud: Developing with Google App Engine
Castles in the Cloud: Developing with Google App Engine
 
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There TodayHTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
 
NCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile AppsNCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile Apps
 
PhoneGap at Facebook Mobile Hack
PhoneGap at Facebook Mobile HackPhoneGap at Facebook Mobile Hack
PhoneGap at Facebook Mobile Hack
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium Intro
 
Chrome Dev Summit Summary 2013 part 1 - what’s hot ?
Chrome Dev Summit Summary 2013 part 1 - what’s hot ?Chrome Dev Summit Summary 2013 part 1 - what’s hot ?
Chrome Dev Summit Summary 2013 part 1 - what’s hot ?
 
Try! Swift Tokyo2017
Try! Swift Tokyo2017Try! Swift Tokyo2017
Try! Swift Tokyo2017
 
Living in a multiligual world: Internationalization for Web 2.0 Applications
Living in a multiligual world: Internationalization for Web 2.0 ApplicationsLiving in a multiligual world: Internationalization for Web 2.0 Applications
Living in a multiligual world: Internationalization for Web 2.0 Applications
 
Web Technologies in Automotive & Robotics (BlinkOn 10)
Web Technologies in Automotive & Robotics (BlinkOn 10)Web Technologies in Automotive & Robotics (BlinkOn 10)
Web Technologies in Automotive & Robotics (BlinkOn 10)
 
Device APIs at TakeOff Conference
Device APIs at TakeOff ConferenceDevice APIs at TakeOff Conference
Device APIs at TakeOff Conference
 
State ofappdevelopment
State ofappdevelopmentState ofappdevelopment
State ofappdevelopment
 
Embarcadero's Connected Development
Embarcadero's Connected DevelopmentEmbarcadero's Connected Development
Embarcadero's Connected Development
 
Apache cordova
Apache cordovaApache cordova
Apache cordova
 
Angular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - LinagoraAngular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - Linagora
 
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
 

Recently uploaded

Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Newntide latest company Introduction.pdf
Newntide latest company Introduction.pdfNewntide latest company Introduction.pdf
Newntide latest company Introduction.pdf
LucyLuo36
 

Recently uploaded (20)

Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Newntide latest company Introduction.pdf
Newntide latest company Introduction.pdfNewntide latest company Introduction.pdf
Newntide latest company Introduction.pdf
 

Titanium Desktop Intro

  • 1. Titanium Desktop writing native desktop apps with HTML, CSS, Javascript, and friends.
  • 2. About Me Marshall Culpepper Titanium Project Lead / Hacker Extraordinaire @marshall_law http://www.arcaner.com mculpepper@appcelerator.com http://github.com/marshall
  • 3. Agenda • What is Titanium? • High Level Architecture, Runtime • API Overview • Guided Lab: Screengrabber
  • 4. What is Titanium? • An open source framework for building native apps using web technologies • Titanium Desktop: Windows, OSX, Linux • Titanium Mobile: iPhone, Android http://appcelerator.com http://github.com/appcelerator @appcelerator #titanium_app on irc.freenode.net
  • 5. Motivation • Single Site Browsers (Fluid, Prizm) • Adobe AIR • Cross platform GUI toolkits (Qt, wxWidgets, XUL, GTK) • Dynamic Languages (Ruby, Python, Javascript) • Binding layers (Jython, Rhino, JavaScriptCore) • Next gen web tech: HTML5, Gears, CSS3 • ... And lots of caffeine!
  • 6. Titanium Desktop • UI with HTML5, CSS, Canvas. The best of the open web. • Support for Javascript, Ruby, Python (PHP coming soon) • Languages can be intermixed automatically. • Native desktop functionality at your fingertips. • Titanium.* APIs are available in all languages • Windows (XP/SP2 -> 7), OSX (10.5->10.6, Universal), Linux (Debian based distros, Fedora, SuSE)
  • 8. The Desktop Runtime • Fully configurable distribution options: • “Bundled” : Runtime is packaged with your app, no seperate installer • “Network Install”: A native installer downloads dependencies on demand • Remove modules you don’t need to cut down on binary size • Reuse the runtime already on the user’s machine • Runtime size: OSX: ~17MB, Win32: ~15MB
  • 12. Database API Synchronous and Asynchronous (HTML5) APIs
  • 13. Process API Launch processes, read/write from pipes
  • 14. And much more.. • Web Workers: Multi-threading for Javascript • Desktop: Take screenshots, open URLs, applications • Comprehensive language support: • Javascript (WebKit / close to trunk -- blazing fast) • Ruby 1.8.6 (1.9 with GVL coming soon) • Python 2.5.4 (2.6 coming soon) • PHP 5.3 (in development) • Lua (in development) • C/C++ Native bindings • Java / C# planned post-1.0
  • 15. Useful Resources • Check out some of my demo apps: • http://github.com/marshall/screengrabber • http://github.com/marshall/quicksnap (Uses Ruby) • Desktop testsuite (Drillbit) • Full API doc: http://codestrong.com • Support forums: http://support.appcelerator.net
  • 16. Titanium Developer • Used for creating, managing, packaging and testing your native apps. • Requires sign-up for Appcelerator Network (forum support, e-mail list, other services) • Is actually a Titanium app!
  • 17. Obligatory “Hello World” Using the sandbox to quickly test and run code
  • 18. Screengrabber: Our first app • An app that takes a screenshot, and shows it to the user • App walkthrough: • Create the project in Developer • Overview of config files, manifest, app layout • Quickly roundtrip prototype, show off debugging, etc
  • 19. Step 1: Configuration • $ROOT/tiapp.xml • Configure Windows, and their properties
  • 20. Step 2: HTML, CSS, JS • clean out $ROOT/index.html • make a JS script, a CSS stylesheet
  • 21. Step 3: Write the JS • APIs we need from Titanium: • Titanium.Desktop.takeScreenshot(“path/to/file”) • Titanium.Filesystem.getFile() / getDesktopDirectory()
  • 23. Packaging • Once your app is written, you can use our cloud services to package and distribute your app. • Automatically packages with the config you specify, for the platforms you want to support • Built-in analytics to track who’s using your app, downloads, etc
  • 24. Wrapping it up • Current release: 0.6 • 0.7 scheduled for end of Sept., 1.0 GA soon after • Come visit IRC for help, or to chat us up • #titanium_app on irc.freenode.net • Extra credit: using Python, Ruby during the hack session • And now, Lunch!